﻿Option Explicit On
Option Strict On

Imports System.ServiceModel
Imports System.Runtime.Serialization

Namespace Framework.Hardware

    ''' <summary>
    ''' 
    ''' </summary>
    ''' <remarks></remarks>
    <DataContract()> _
    Public Enum LedStatus
        <EnumMember()> Off
        <EnumMember()> Blinking
        <EnumMember()> [On]
    End Enum

    ''' <summary>
    ''' 
    ''' </summary>
    ''' <remarks></remarks>
    Public Class LEDStatusEventArgs
        Inherits EventArgs

#Region " Private Members "

        Dim m_ProtectionLED As LedStatus = LedStatus.Off
        Dim m_HeaterLED As LedStatus = LedStatus.Off
        Dim m_StandbyLED As LedStatus = LedStatus.Off
        Dim m_OperateLED As LedStatus = LedStatus.Off
        Dim m_DriveLED As LedStatus = LedStatus.Off
        Dim m_PlateLED As LedStatus = LedStatus.Off

#End Region

#Region " Constructor "

        Public Sub New(ByVal ProtectionLED As LedStatus, ByVal HeaterLED As LedStatus, ByVal StandbyLED As LedStatus, ByVal OperateLED As LedStatus, ByVal DriveLED As LedStatus, ByVal PlateLED As LedStatus)
            m_ProtectionLED = ProtectionLED
            m_HeaterLED = HeaterLED
            m_StandbyLED = StandbyLED
            m_OperateLED = OperateLED
            m_DriveLED = DriveLED
            m_PlateLED = PlateLED
        End Sub

#End Region

#Region " Public Properties "

        Public Property ProtectionLED As LedStatus
            Get
                Return m_ProtectionLED
            End Get
            Set(ByVal value As LedStatus)
                m_ProtectionLED = value
            End Set
        End Property

        Public Property HeaterLED As LedStatus
            Get
                Return m_HeaterLED
            End Get
            Set(ByVal value As LedStatus)
                m_HeaterLED = value
            End Set
        End Property

        Public Property StandbyLED As LedStatus
            Get
                Return m_StandByLED
            End Get
            Set(ByVal value As LedStatus)
                m_StandByLED = value
            End Set
        End Property

        Public Property OperateLED As LedStatus
            Get
                Return m_OperateLED
            End Get
            Set(ByVal value As LedStatus)
                m_OperateLED = value
            End Set
        End Property

        Public Property DriveLED As LedStatus
            Get
                Return m_DriveLED
            End Get
            Set(ByVal value As LedStatus)
                m_DriveLED = value
            End Set
        End Property

        Public Property PlateLED As LedStatus
            Get
                Return m_PlateLED
            End Get
            Set(ByVal value As LedStatus)
                m_PlateLED = value
            End Set
        End Property

#End Region

    End Class

End Namespace